package com.chixing.day10.HashCode;

/**
 * 重写equals方法 :因为比较两个对象是不是同一个对象,业务中要比较而是内容值,而不是内存地址。但是Object.equals()
 * 比较的还是内存地址,所以业务中需要重写equals方法。
 * <p>
 * 为什么要重写hashcode方法?
 * e:因为随着数据量的增多,判断容器中是否有该对象,则需要挨个调用equals方法,这样效率非常低
 */
public class StudentTest {
    public static void main(String[] args) {
        Student stu1 = new Student(101, "jason", "ben", 151551);
        Student stu2 = new Student(101, "jason", "ben", 151551);
        System.out.println(stu1 == stu2);
        System.out.println(stu1.equals(stu2));


        //哈希函数
        Student s1 = new Student(101, "jason", "ben", 1515151515150205L);
        Student s2 = new Student(101, "jason", "ben", 1515151515150205L);
        Student s3 = new Student(106, "markon", "jau", 151454545555L);
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());
        System.out.println(s3.hashCode());
    }
}
